<?php

namespace App\Http\Controllers\Admin;

use App\Models\Role;
use App\Models\RolePermit;
use Illuminate\Http\Request;

class RoleController extends BaseController
{
    /**
     * 角色列表
     * @return string
     */
    public function index()
    {
        return $this->success(Role::all());
    }

    /**
     * 添加角色
     */
    public function create(Request $request)
    {
        $role = Role::create($request->only('name'));
        return $this->success($role);
    }

    /**
     * 修改角色
     * @param $id
     */
    public function update($id)
    {
        return 'update';
    }

    /**
     * 删除角色
     * @param $id
     */
    public function delete($id)
    {
        return 'delete';
    }

    /**
     * 获取角色拥有的权限
     * @param $id
     */
    public function getPermits($id)
    {
        $role = Role::find($id);
        return $this->success($role->permits);
    }


    /**
     * 绑定角色权限
     * 一次可以绑定多条
     */
    public function bindPermits(Request $request, $id)
    {
        // 删除角色之前拥有的权限
        RolePermit::where('role_id', $id)->delete();

        //得到上传权限
        $permits = $request->input('permits');

        $insert = array_map(function ($e) use ($id) {
            return ['role_id' => $id, 'permit_id' => intval($e)];
        }, $permits);
        RolePermit::insert($insert);
        return $this->success();
    }

}
